package com.example.designpatterns.mediator;

/**
 * 同事抽象类
 * 定义同事对象的基本行为
 */
public abstract class Colleague {
    protected Mediator mediator;
    protected String name;

    /**
     * 构造函数
     * @param mediator 中介者
     * @param name 名称
     */
    public Colleague(Mediator mediator, String name) {
        this.mediator = mediator;
        this.name = name;
    }

    /**
     * 发送消息
     * @param message 消息
     */
    public void send(String message) {
        System.out.println(name + " 发送消息: " + message);
        mediator.communicate(this, message);
    }

    /**
     * 接收消息
     * @param message 消息
     */
    public abstract void receive(String message);
}